/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controller;

import Entity.*;
import Model.*;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import library.Koneksi;
import library.NamaLab;


/**
 *
 * @author mr2
 */
public class JadwalSidangTALogic{
    HttpServletRequest request;

    public JadwalSidangTALogic(HttpServletRequest request) {
        this.request = request;
    }
    
    public String KelolaJadwalSidang(){
        
        String jenisSidang = request.getParameter("jenisSidang");
        String tglSidang = request.getParameter("tglSidang");
        String pesan = request.getParameter("pesan");
        String idUser = request.getParameter("idUser");
        
        String role = null;
        String lab = null;
        
        HttpSession session = request.getSession();
        ArrayList listRole = new ArrayList();
        listRole = (ArrayList)session.getAttribute("role");
        
        boolean bukanRole = true;
        if (session.getAttribute("role") != null) {
            for (int i = 0; i < listRole.size(); i++) {
                if ((listRole.get(i).equals("laboran_ppsi") || listRole.get(i).equals("laboran_spk") || listRole.get(i).equals("laboran_ebisnis"))) {
                    bukanRole = false;
                }
            }
        }
        
        if (session.getAttribute("role") == null) {
            return "login";
        } else if (bukanRole) {
            request.setAttribute("menu", "monitoringTA");
            request.setAttribute("submenu", "");
            return "AccessDenied";
        }else {
            for(int count = 0; count < listRole.size(); count++){
                role = (String)listRole.get(count);          
            }
        
            if(tglSidang == null){
                tglSidang = "";
            }
            System.out.println(role);
            if(role.equals("laboran_ppsi")){
                lab = "PPSI";
            }else if(role.equals("laboran_spk")){
                lab = "SPK";
            }else{
                lab = "EBISNIS";
            }

            TA ta = new TA();
            Sidang sidang = new Sidang();

            ta.setNamaLab(lab);
            sidang.setTa(ta);
            sidang.setJenisSidang(jenisSidang);
            sidang.setTglSidang(tglSidang);

            SidangTAModel Jadwal = new SidangTAModel();
            List<Sidang> listJadwalSidang = Jadwal.ListJadwalSidang(sidang);

            DosenModel dosen = new DosenModel();
            List<Dosen> namaDosen = dosen.ListPembimbing();

            request.setAttribute("tglSidang", tglSidang);
            request.setAttribute("lab", lab);
            request.setAttribute("jenisSidang", jenisSidang);
            request.setAttribute("listJadwalSidang", listJadwalSidang);
            request.setAttribute("namaDosen", namaDosen);
            request.setAttribute("pesan", pesan);
            request.setAttribute("idUser", idUser);
            request.setAttribute("menu", "monitoringTA");
            request.setAttribute("submenu", "kelolaJadwalSidang");

            return "monta/Laboran_list_jadwal_sidang.jsp";   
        } 
    }
    
    public String DetailJadwalSidang(){
        
        String id_Sidang = request.getParameter("idSidang");
        int idSidang = Integer.parseInt(id_Sidang);

        String id_TA = request.getParameter("idTA");
        int idTA = Integer.parseInt(id_TA);
        
        String idUser = request.getParameter("idUser");
        String jenisSidang = request.getParameter("jenisSidang");
        String tglSidang = request.getParameter("tglSidang");
        
        User user = new User();
        TA ta = new TA();
        Sidang sidang = new Sidang();
        
        user.setIdUser(idUser);
        ta.setIdTA(idTA);
        ta.setUser(user);
        sidang.setTa(ta);
        sidang.setJenisSidang(jenisSidang);
        sidang.setIdSidang(idSidang);
                
        TAModel detailTA = new TAModel();
        TA detailDataTA = detailTA.getDetailDataTA(ta);
        
        SidangTAModel jadwal = new SidangTAModel();
        Sidang detailJadwal = jadwal.getDetailJadwalSidang(sidang);
        System.out.println("idSidang : "+detailJadwal.getTempatSidang());
        
        DosenModel dosen = new DosenModel();
        List<Dosen> listPembimbing1 = dosen.ListPembimbing1();
        List<Dosen> listPembimbing2 = dosen.ListPembimbing();
        List<Dosen> listPenguji1 = dosen.ListPenguji1(detailTA.getDetailDataTA(ta).getPembimbing1());
        List<Dosen> listPenguji2 = dosen.ListPenguji2(detailTA.getDetailDataTA(ta).getPembimbing2());
        
        request.setAttribute("tglSidang", tglSidang);
        request.setAttribute("jenisSidang",jenisSidang);
        request.setAttribute("idUser", idUser);
        request.setAttribute("listPembimbing1", listPembimbing1);
        request.setAttribute("listPembimbing2", listPembimbing2);
        request.setAttribute("listPenguji1", listPenguji1);
        request.setAttribute("listPenguji2", listPenguji2);
        request.setAttribute("detailDataTA", detailDataTA);
        request.setAttribute("detailJadwal", detailJadwal);
        request.setAttribute("menu", "monitoringTA");
        request.setAttribute("submenu", "kelolaJadwalSidang");
        
        return "monta/Laboran_detail_jadwal_sidang.jsp";
    }
    
    public String PenjadwalanSidang(){ 
          
        String idUser = request.getParameter("idUser");
        String id_Sidang = request.getParameter("idSidang");        
        String jenisSidang = request.getParameter("jenisSidang");
        String tglSidang = request.getParameter("tglSidang");
        String wktSidang = request.getParameter("wktSidang");
        String tempatSidang = request.getParameter("tempatSidang");
        String penguji1 = request.getParameter("penguji1");
        String penguji2 = request.getParameter("penguji2");  
        System.out.println("tanggal sidang : "+tglSidang);
        
         
        SidangTAModel jadwal = new SidangTAModel();
        
        String pesan = null;
        String isiPesan = null;
        
        
        if(id_Sidang != null){
            int idSidang = Integer.parseInt(id_Sidang);
            
            Sidang sidang = new Sidang();
            sidang.setJenisSidang(jenisSidang);
            sidang.setIdSidang(idSidang);
            sidang.setTglSidang(tglSidang);
            sidang.setWktSidang(wktSidang);
            sidang.setTempatSidang(tempatSidang);
            sidang.setPenguji1(penguji1);
            sidang.setPenguji2(penguji2);
                
            boolean PenjadwalanSidang = jadwal.PenjadwalanSidang(sidang);

            if(PenjadwalanSidang){
                pesan = "sukses";
                isiPesan = "Penjadwalan sidang sukses";
            }else{
                pesan = "gagal";
                isiPesan = "Penjadwalan sidang gagal";
            }
            
            return "SidangTAController?page=listJadwalSidang&&idSidang="+idSidang+"&&jenisSidang="+jenisSidang+"&&tglSidang="+tglSidang+"&&pesan="+pesan;
            
        }else{
            return KelolaJadwalSidang();
        }       
    }
    
    public String JadwalSidang(){
        
        String jenisSidang = request.getParameter("jenisSidang");
        String tglSidang = request.getParameter("tglSidang");
        String lab = request.getParameter("lab");
        System.out.println(lab);
        System.out.println(jenisSidang);
        System.out.println(tglSidang);
        
        HttpSession session = request.getSession();
        ArrayList listRole = new ArrayList();
        listRole = (ArrayList)session.getAttribute("role");
        
        boolean bukanRole = true;
        if (session.getAttribute("role") != null) {
            for (int i = 0; i < listRole.size(); i++) {
                if ((listRole.get(i).equals("dosen")) || (listRole.get(i).equals("mahasiswa"))) {
                    bukanRole = false;
                }
            }
        }
        
        if (session.getAttribute("role") == null) {
            return "login";
        } else if (bukanRole) {
            request.setAttribute("menu", "monitoringTA");
            request.setAttribute("submenu", "");
            return "AccessDenied";
        }else {
            

            TA ta = new TA();
            Sidang sidang = new Sidang();

            ta.setNamaLab(lab);
            sidang.setTa(ta);
            sidang.setJenisSidang(jenisSidang);
            sidang.setTglSidang(tglSidang);

            SidangTAModel Jadwal = new SidangTAModel();
            List<Sidang> listJadwalSidang = Jadwal.ListJadwalSidang(sidang);

            DosenModel dosen = new DosenModel();
            List<Dosen> namaDosen = dosen.ListPembimbing();
            
            NamaLab namaLab = new NamaLab();
            List<NamaLab> listlab = namaLab.ListLab();

            request.setAttribute("tglSidang", tglSidang);
            request.setAttribute("lab", lab);
            request.setAttribute("jenisSidang", jenisSidang);
            request.setAttribute("listlab", listlab);
            request.setAttribute("listJadwalSidang", listJadwalSidang);
            request.setAttribute("namaDosen", namaDosen);
            request.setAttribute("menu", "monitoringTA");
            request.setAttribute("submenu", "jadwalSidang");

            return "monta/Jadwal_sidang.jsp";   
        } 
    }
    
}
